De perfecte media server (wheezy)

Al geruime tijd maak ik gebruik van Debian als het gaat om mijn webserver / media server.
Uiteraard wil ik dat alles zo soepel en goed mogelijk verloopt op mijn server maar zo nu en dan gaat er wel eens iets mis (meestal als ik besluit om weer iets nieuws te installeren via de terminal)

Deze tutorial is bestemd om de meest ideale web / media server op te zetten die in mijn ogen mogelijk is. En eigenlijk.... Is het helemaal niet zo moeilijk.

Heads Up...

In deze tutorial wordt alleen uitgelegd hoe je je server kan opzetten tot deze perfecte media server. Er wordt geen uitleg gegeven over het gebruik van de software die we gaan gebruiken. Ik ga er van uit dat je zelf intelligent genoeg bent om dit uit te vogelen. Als dat niet zo is, dan is dit waarschijnlijk allemaal te hoog gegrepen voor je.. (En dit is écht niet moeilijk...)

De voorbereiding

De voorbereiding stelt eigenlijk helemaal niks voor.
Zorg er voor dat je systeem klaar staat en volledig is aangesloten op het netwerk. Én zorg er voor dat je systeem voldoende capaciteit heeft wat betreft streamen van media, downloaden van media en natuurlijk het opslaan van de media.
In mijn geval maak ik gebruik van de volgende hardware:

  • ASRock ALive mainboard
  • AMD Athlon64 X2 6000+ CPU
  • 4x 1GB Kingston DDR2 PC6400 HyperX RAM
  • 1x Seagate 380GB 7200RPM SATA2 HDD
  • 1x Seagate 500GB 7200RPM SATA2 HDD
  • 1x Western Digital 3TB 7200RPM SATA2 HDD

Voor de graphics maak ik gebruik van de onboard videokaart waar ik slechts 64MB geheugen aan heb toegewezen. Tenslotte wordt dit systeem voor niks anders gebruikt dan streamen, downloaden en te voldoen als webserver.
Dit heb ik via een normale internet verbinding over de kabel lopen. Ik maak gebruik van het snelste pakket van Ziggo. de 180Mbit download en 18Mbit upload.

Dit is vervolgens weer rechtstreeks verbonden op een Netgear WNDR3700V2 router met een custom Gargoyle firmware. En deze is vervolgens weer verbonden op een Asus Gigabit switch om wat meer verbindingen te creeëren voor alle apparaten in dit huishouden. (1 server, 5 pc's, 2 laptops via WiFi, diverse mobiele telefoons via WiFi, 2 Smart TV's rechtstreeks via UTP, diverse game consoles via UTP én/of WiFi)

Vervolgens hebben we natuurlijk een recente versie van Debian nodig.
Ik maak gebruik van de Net-install versie. Deze is snel te downloaden vanwege het kleine formaat en vooral voor dit doel ideaal omdat alleen de zaken worden gedownload en geïnstalleerd die wij willen.
Deze is hier te krijgen op de officiele website van Debian.
Na het downloaden van de ISO brand je deze op CD.

Als je niet weet hoe je een CD brand, dan kan je hier al beter opgeven omdat dit dan te hoog gegrepen is voor je.

Installeren

Als eerste gaan we een verse install doen van het Debian systeem. Hiervoor plaats je gewoon de gebrande CD in de speler en zorg je dat de Boot volgorde in de BIOS als eerste de CD/DVD speler pakt.
Je krijgt nu vanzelf een menu van Debian waarin gevraagd wordt wat je wilt doen.
Kies hier voor install (of graphical install)

Doorloop alle stappen van de installatie.
Als je bij de partman aankomt (het instellen van de partities op de harde schijf), kies dan voor benut gehele schijf en gebruik LVM.

LVM geeft de mogelijkheid om later heel makkelijk een extra harde schijf toe te voegen aan je systeem en de beschikbare ruimte toe te wijzen aan de huidige installatie.

Als je uiteindelijk aankomt bij de keuze welke onderdelen je wilt installeren, kies dan voor Desktop omgeving en basis systeem. De rest vink je uit. De noodzakelijke onderdelen worden in een later stadium wel geinstalleerd als dat noodzakelijk is bij andere pakketten.

Even een paar mappen aanmaken

Omdat we straks alles netjes geordend willen hebben gaan we nu meteen even een paar mappen aanmaken die we later gaan gebruiken.
Open een terminal venster en typ het volgende:

# Als het goed is bevind je je nu /home/jouw-gebruikersnaam. Als dit niet het geval is typ je eerst het volgende:
cd /home/jouw-gebruikersnaam

# We gaan nu eerst naar de download map. Vergeet de hoofdletters niet. Linux is case-sensitive
cd Downloads

# Nu gaan we de mappen aanmaken
mkdir Unsorted
mkdir Incomplete
mkdir Media

# En nu gaan we een paar mappen aanmaken in de Media map.
mkdir Media/Films
mkdir Media/Series
mkdir Media/Muziek

# We delen ook de Film map nog even op in 2 categorieën. Dit is OPTIONEEL.
mkdir Media/Films/HD
mkdir Media/Films/3D

# We maken ook een paar mappen aan in de Unsorted map.
mkdir Unsorted/Films
mkdir Unsorted/Series
mkdir Unsorted/Muziek

Webmin / Virtualmin

Voor het beheer van je systeem is het het makkelijkst (vind ik) om gebruik te maken van Webmin. Dit in combinatie met Virtualmin maakt je systeem direct toegankelijk als web / ftp / print / file / samba server.
Het uiterlijk van Webmin is niet geheel modern maar de mogelijkheden zijn bijna oneindig. (Ze zijn bezig met het ontwerp van een nieuwe UI op basis van Bootstrap)
Webmin / Virtualmin is gratis bij gebruik van de GPL versie. Deze versie is ook ruim voldoende voor wat wij er mee gaan doen. Als je veeleisend bent zou je voor de Pro versie kunnen gaan, maar deze is toch wel redelijk geprijsd.

Zodra Debian geïnstalleerd is start je een terminal venster als root gebruiker en ga je naar de Download map.
We gaan nu eerst de virtualmin installer downloaden. Dit doe je als volgt:

wget http://software.virtualmin.com/gpl/scripts/install.sh

Nadat de download klaar is (Gaat heel erg snel, het is maar een simpel shell scriptje) start je het script.

sh install.sh

Er wordt gevraagd of je zeker bent dat je door wilt gaan, hier druk je uiteraard op "y" en de installatie van virtualmin start vanzelf.
Tijdens deze installatie worden vanzelf alle sleutels en repo's toegevoegd aan je systeem en alle dependencies worden automatisch geïnstalleerd.
Zodra het script klaar is kan je via de webbrowser naar de webmin / virtualmin UI surfen.
Deze is te vinden op https://IP_ADRES_VAN_SERVER:10000
Je logt vervolgens in met de gebruiker "root" en het wachtwoord wat je hebt gekozen voor de root gebruiker tijdens de installatie van Debian.

Zodra je bent ingelogd wordt er gevraagd om de post-install settings van webmin/virtualmin te doorlopen. Dit zijn allemaal meerkeuze vragen en hier kan je eigenlijk niks verkeerds aan doen. Gewoon even lezen en daarna is het klaar.

Plex Media Server

Nu is het tijd om de media server te installeren.
Plex is naar mijn idee de meest uitgebreide en gebruiksvriendelijke media server beschikbaar.
Je kan met diverse apparaten verbinding maken om je media af te spelen. Hieronder vallen PC's, Smart tv's, Android, iOS en Google ChromeCast. Je kan dus eigenlijk altijd en overal gebruik maken van je media.

Voor het toevoegen van de key hebben we curl nodig. Dus die gaan we eerst installeren. Dit doen we heel simpel met het volgende commando:

apt-get install curl

Nu kunnen we beginnen met het toevoegen van de repository in je sources list en de repo key

# Hiermee wordt de repository aan je sources list toegevoegd
echo "deb http://shell.ninthgate.se/packages/debian squeeze main" >> /etc/apt/sources.list
 
# Hiermee wordt de key voor de repository toegevoegd.
curl http://shell.ninthgate.se/packages/shell-ninthgate-se-keyring.key | apt-key add -

Hierna kunnen we simpelweg met apt de plex media server installeren.

# Natuurlijk eerst de repo's updaten
apt-get update

# En dan de daadwerkelijke installatie
apt-get install plexmediaserver

Alle dependencies worden automatisch mee geinstalleerd en je bent klaar om je media server te starten

Via je webbrowser kan je naar het controle paneel (waar je overigens ook direct je media kan streamen)
Je gaat naar: http://JOUW_SERVER_IP:32400

Je komt automatisch in het scherm van je Plex Server en ook hier moet je de eerste stappen even simpel doorlopen.
Vervolgens maak je een paar categorieën aan en je kan direct streamen over de hele wereld. Of je deelt het met je vrienden of familie.

SABnzbD+

Je hebt nu een Debian server met de mogelijkheid tot webserver, FTP server, file server, print server en ga nog maar even door. Maar we zijn nu natuurlijk bezig om de perfecte media server op te zetten. Zo'n media server kan natuurlijk niet zonder media.
Je kan je bestaande media gewoon kopiëren naar je persoonlijke media map maar je wilt natuurlijk ook de mogelijkheid hebben om zelf te downloaden. Hiervoor hebben we een download programma nodig.
Om van de diverse nieuwsgroepen te downloaden maken we gebruik van SABnzbD+.

We beginnen als eerste om weer een repository toe te voegen aan je /etc/apt/sources.list bestand.
We gaan ook meteen een aantal bestaande repo's een klein beetje aanpassen.

De bestaande Debian Wheezy repository's voegen we aan toe contrib non-free

# Voeg "contrib non-free" toe aan de debian repo's waarin "wheezy main" staat.
# Je krijgt dus zoiets als dit...
deb http://ftp.nl.debian.org/debian/ wheezy main contrib non-free

# Helemaal onderaan zet je het volgende:
# SABnzbdPlus repository (Unofficial Ubuntu)
deb http://ppa.launchpad.net/jcfp/ppa/ubuntu precise main

 

De onderste regel is eigenlijk de repository van SABnzbD+ voor Ubuntu. Maar deze werkt prima op Debian. Sla het bestand op en ga terug naar de terminal prompt. Nu moeten we nog even de key voor deze repo toevoegen. Dit doe je met het onderstaande commando.

apt-key adv --keyserver hkp://pool.sks-keyservers.net:11371 --recv-keys 0x98703123E0F52B2BE16D586EF13930B14BB9F05F

Nu kunnen we weer een update doen van de repo's en de daadwerkelijke installatie starten.

apt-get update
apt-get install sabnzbdplus

Alle dependencies worden weer automatisch geïnstalleerd. Hierbij wordt ook unrar, par2 geinstalleerd. Deze zijn noodzakelijk om SABnzbD+ alle downloads te laten verwerken.

Als alles geïnstalleerd is moeten we nog een kleine aanpassing maken zodat we toegang hebben vanaf elke computer in het netwerk, én dat de gedownloade bestanden de juiste rechten krijgen.
Open het bestand /etc/default/sabnzbdplus om te bewerken en pas de volgende regels aan:

USER=vul hier je gebruikersnaam in
HOST=0.0.0.0

Sla ook dit bestand op en ga terug naar de terminal prompt.
Je kan nu de service starten met het commando:

service sabnzbdplus start

Nu kan je via je browser (vanaf elke pc in het netwerk) surfen naar: http://jouw-server-ip:8080
Hier krijg je ook een post-install die je even moet doorlopen. Stel onder andere je usenet server gegevens in, de taal voor de UI en nog een zootje andere instellingen.

Transmission-daemon

Naast het downloaden via usenet, is het in sommige gevallen handig om ook te kunnen downloaden via torrents.
Normaal gesproken vind ik .torrent downloaden een manier die erg achterhaald en vooral langzaam is. Maar als je bij je normale usenet downloads bepaalde bestanden niet meer binnen kunt krijgen, dan zijn deze vaak via torrents nog wel te vinden. Dit is dus puur en alleen als backup methode voor als je het via je nieuwsgroepen niet meer kunt vinden.

We kunnen heel gemakkelijk dit systeem installeren op je Debian Wheezy systeem.

# Een update van de repo's is eigenlijk niet nodig maar "just to make sure"..
apt-get update

# Nu de torrent downloader + web interface downloaden en installeren
apt-get install transmission-daemon

Je bent eigenlijk nu al klaar, maar we gaan de installatie nog een klein beetje aanpassen.
Met deze standaard installatie wordt er ook een nieuwe gebruiker aangemaakt: "debian-transmission". Alles wat er dus gedownload wordt zal onder die gebruiker zijn. Je hebt dus eigenlijk geen rechten tot de bestanden als je een andere gebruiker bent. Dit gaan we dus aanpassen.
 

# Als eerste zorgen we dat de daemon niet gestart is, Dus deze stoppen we simpelweg met
service transmission-daemon stop

# Nu gaan we het init bestand aanpassen.
nano /etc/init.d/transmission-daemon

# Verander USER=debian-transmission naar:
USER=jouw-gebruikersnaam

# Sluit het bestand nadat je deze hebt opgeslagen.

# Nu de andere bestanden van de installatie nog jouw rechten geven
chown jouw-gebruikersnaam:jouw-gebruikersnaam /etc/transmission-daemon/settings.json
chown -R jouw-gebruikersnaam:jouw-gebruikersnaam /var/lib/transmission-daemon

# En als laatste nog een paar aanpassingen maken in het settings bestand.
nano /etc/transmission-daemon/settings.json

# Zoek naar "download-dir": en verander in:
"download-dir":/home/jouw-gebruikersnaam/Downloads/Unsorted

# Zoek naar: "rpc-enabled": false en verander in:
"rpc-enabled": true

# Zoek naar: "rpc-whitelist": en verander naar:
"rpc-whitelist": "*"

# OPTIONEEL: Zoek naar: "rpc-authentication-enabled": en verander naar:
"rpc-authentication-enabled": false
# Dit worgt er voor dat je geen login en wachtwoord hoeft te gebruiken om naar je interface te gaan.
# Standaard login en wachtwoord is: transmission / transmission

En meer is het niet. Je kan nu via je webbrowser naar: http://jouw-server-ip: 9091 surfen.
Als je de rpc-authentication-enabled op true hebt laten staan kan je inloggen met "transmission" / "transmission"

SickRage (Sickbeard fork)

Oké,... We kunnen nu dus downloaden. Dat betekend dat we al een heel eind zijn in onze setup. het is nu de bedoeling dat we die download programma's ook aansturen zonder dat we er zelf naar omkijken.

Om series te kunnen downloaden vind ik persoonlijk SickRage een erg goed programma. Makkelijk in gebruik, snelle interface en veel mogelijkheden.
Er is sinds enige tijd ook een alternatief (eXtendible Download Manager, kort XDM). Deze heeft naar mijn idee niet voldoende mogelijkheden wat betreft alleen de series, dus die laten we even voor wat het is.
Je hebt ook nog altijd de mogelijkheid om Sonarr (vroeger NZBDrone) te gebruiken. Dit is grafisch een mooi programma maar vergt nogal veel werk in de setup en installatie in verband met extra software én de mogelijkheden van Sonarr vind ik momenteel nog te beperkt ten opzichte van SickRage. Denk hierbij aan automatisch subtitles downloaden, preview van bestanden, automatisch toevoegen vanuit lijsten van bijv. imdb en Trakt, en ga maar door.
We gaan dus voor SickRage.

Om SickRage te installeren gaan we deze met behulp van git binnenhalen. Dit is makkelijk zodat dan ook snel de updates uitgevoerd kunnen worden.
We installeren dus eerst git. Dit is snel gedaan met het volgende commando

apt-get install git

Als dit klaar is kunnen we SickRage gaan installeren.
De originele SickBeard wordt niet meer onderhouden maar er zijn in de tussentijd erg veel forks van gemaakt. Wij gebruiken de SickRage fork. Deze wordt volop onderhouden en heeft veel extra mogelijkheden ten opzichte van de originele SickBeard. De git repository is hier te vinden.

# Ga in de terminal eerst naar je eigen home map. (zorg ook dat je als user de terminal gebruikt en niet als root)
cd /home/jouw-gebruikersnaam

# Maak een map aan waar je al je programma's installeerd. Deze gebruiken we later steeds weer.
mkdir bin

# Nu gaan we die map in
cd bin

# Gebruik git om een clone te maken van SickBeard. Hiervoor gebruik je de URL van de repository
git clone https://github.com/echel0n/SickRage SickBeard

# Ga de SickBeard map in.
cd SickBeard

# Switch nu weer naar de root user voor de volgende opdrachten.
# Kopieër het init bestand uit de sickbeard map naar de init.d map.
cp init.ubuntu /etc/init.d/sickbeard

# Nu gaan we het default bestand aanmaken
nano /etc/default/sickbeard

# Plaats het volgende in dit nieuwe bestand
SB_USER=jouw-gebruikersnaam
SB_GROUP=jouw-gebruikersnaam
SB_HOME=/home/jouw-gebruikersnaam/bin/SickBeard
SB_DATA=/home/jouw-gebruikersnaam/bin/SickBeard

# Sla dit bestand op en sluit het.

# Nu het init bestand chmodden en toevoegen aan je opstart daemon.
chmod +x /etc/init.d/sickbeard
update-rc.d sickbeard defaults

# Nu kan je SickBeard starten
service sickbeard start

Je kan nu vanuit je browser naar http://jouw-server-ip:8081 surfen.
Je zal deze eerste keer een zootje foutmeldingen in je log hebben omdat er nog geen config bestand bestaat. Deze wordt aangemaakt zodra je je eerste instellingen gaat wijzigen.
Nu is het dus alleen nog een kwestie van alles instellen en series toevoegen aan je watchlist.

CouchPotato

Nu gaan we het mooie programma CouchPotato installeren.
Naar mijn mening is dit veruit het beste programma voor geautomatiseeerde downloads van films. De ontwikkeling en support is erg goed en frequent en daarnaast is het uiterlijk van het programma erg netjes, duidelijk en flot.

De installatie is ook nog eens erg simpel.

# Eerst gaan we weer naar de bin folder (als user)
cd /home/jouw-gebruikersnaam/bin

# Nu clonen we met git couchpotato naar een nieuwe folder
git clone https://github.com/RuudBurger/CouchPotatoServer.git

# Het init script kopieëren
sudo cp CouchPotatoServer/init/ubuntu /etc/init.d/couchpotato

# Nu even snel een default bestand maken
sudo nano /etc/default/couchpotato

# De volgende regels hier even in plakken
CP_USER=jouw-gebruikersnaam
CP_HOME=/home/jouw-gebruikersnaam/bin/CouchPotatoServer
CP_DATA=/home/jouw-gebruikersnaam/bin/CouchPotatoServer

# Het bestand opslaan en sluiten met CTRL + O / CTRL + X

# Nu het init bestand nog de juiste rechten geven en het bestand initialiseren
sudo chmod +x /etc/init.d/couchpotato
update-rc.d couchpotato defaults

# De couchpotato service starten
sudo service couchpotato start

Nu kan je via je browser naar http://jouw-server-ip:5050 surfen voor je couchpotato interface.
De eerste keer wordt automatisch de setup gestart om alles goed in te stellen.

More to come...

  • Headphones

Tags: debian server media tutorial linux sabnzbd sickbeard couchpotato spotweb webmin virtualmin plex

Comments ()